package thread;
// 写法1
/**
 * Java操作多线程，最核心的类 Thread 。使用 Thread 类，不需要 import 别的包 ，因为是在 java.lang 下面的
 * 另外还有，String、StringBuilder、StringBuffer 也不需要手动导包，这些都是系统自动导包的。
 */
class MyThread extends Thread{
    @Override  // 重写
    public void run() { // 如果 run 方法执行完毕，新的这个线程自然销毁
        while (true) {
            System.out.println("hello thread");
            try {
                Thread.sleep(1000); //休眠1000ms --- 1s
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class ThreadDemo1 {
    public static void main(String[] args) {
        Thread t = new MyThread();
        t.start(); // 线程中的特殊方法：启动一个线程。start这里的工作就是创建一个线程，新的线程负责执行 t.run()
        /* 就是调用操作系统的API，通过操作系统内核创建新线程的PCB（程序控制块），并且把要执行的指令交给这个PCB，
         当PCB被调度到CPU上执行的时候，也就执行到了线程 run 方法中的代码了。*/
        while (true) {
            System.out.println("hello main");
            try {
                Thread.sleep(1000); //休眠1000ms --- 1s
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}


